One of the major issues in the process of developing computer software applications is assuring appropriate level of quality. One of the methods to achieve higher quality is performing so called code review or code inspection, among others. Typically, newly created or modified code is analyzed by a senior developer in a search for potential defects. Often the author of the code has to explain to the reviewer what the code is intended to do. In most cases, such process is completely manual. The code developer has to contact the reviewer to approve the changes, before committing changes to the repository. Then, they either print modified piece of code or analyze the code displayed on the screen of a computer. If a potential defect or other deficiency is detected, the developer and the reviewer discuss the specific code fragment. However, such process has some drawbacks.
First, the process assumes that the reviewer is always available. While it may be true if this is primary task for the reviewer, very often the reviewer is just another developer and has other primary tasks and may not be available. This may block the code author from committing the changes into the repository. Another problem is that the author may fail to notify reviewer about changes, or may forget about one or two files which were modified. That way, some changes would not be reviewed. A major problem is that after review is done, there is no trace of such review. This practically renders monitoring and improving of the review process impossible. Considering all of the above, a need for a system which would automate most of the manual part of the review and which would keep track of the process and the changes is quite apparent.